This invention relates to imaging systems in general and, in particular, to effectively managing and utilizing multiple versions of a page descriptor language (PDL, also referred to as a personality) within an imaging system.
When printing a document, a host computer first translates the document from a particular high-level language that the host application understands to one that the imaging system (e.g., ink-jet printer, laser printer, pen plotter, etc.) understands. By proper use of the imaging system language, the host computer instructs the imaging system what to print and how to print it. In a modern printing environment, there are a number of imaging system languages, also commonly referred to as page descriptor languages (PDL) or personalities, available to a user.
A personality, which is typically implemented as a software/firmware module in an imaging system subsystem, embodies the necessary instructions to properly accept incoming data in a particular language and convert that representation to a data stream used by a print engine of the imaging system to print a page. Accordingly, the personality is responsible for such tasks as accepting and storing downloaded fonts, selecting and deselecting printer settings, giving feedback to the host (e.g., computer system, printer server, etc.) on the status of a printer job, and so forth.
Typically, an imaging system is implemented with the personality of the manufacturer. For example, Hewlett-Packard Company uses a personality in its line of imaging systems based on its PCL(trademark) printer language. More specifically, PCL(trademark) is a page description language (PDL): the data stream describes what the page should look like and prints the page when it is complete.
Some imaging systems support multiple personalities, allowing the user to use the same printer with a variety of applications and hardware. Examples of other languages include the ESC/P(trademark) language from Seiko Epson Kabushiki Kausha, and the PostScript(trademark) language from Adobe Systems, Inc.
Each personality uses resources of the imaging system to execute a print job. Such resources include RAM (Random Access Memory), ROM (Read Only Memory), hard disk, I/O channels, control panel, paper trays, and print engine. The personalities may share printer resources or partition the resources in such a way that there is minimal interaction between the multiple personalities.
Like most software/firmware, imaging system personalities are updated periodically to remove defects from prior versions and/or to add enhancements to the personality. The typical consumer endeavors to make sure that the most recent personality is installed and available for use on their imaging system. As user""s load these updated personalities onto their system, the result is that multiple revisions of the same personality may reside within the system. Thus, a problem of personality revision management within imaging systems arises.
One prior art solution to this problem is to simply remove xe2x80x9coldxe2x80x9d versions of a personality when a new revision is installed. One problem associated with this solution is that certain features and functions of a personality may not be carried through subsequent revisions of a personality or, if they are, the function calls invoking such features or functions may change in subsequent revisions to the personality.
Another prior art solution to personality management is to leave the prior revisions resident within the imaging system, but to only boot/load the latest revision of a personality when the personality is called. This solution, however, suffers from the same limitation as above, with the added problem that the prior revisions of the personality are needlessly occupying a system resource.
Thus, a system and method which enables an imaging system to utilize all accessible personalities, regardless of revision level, is desired unencumbered by the limitations commonly associated with the prior art. Just such a solution is provided herein.
In accordance with the teachings of the present invention, a system and method for registration and selection of multiple page descriptor languages (i.e., personalities) is presented. More specifically, in accordance with one example implementation, a method for selecting a device personality is presented comprising registering each of a plurality of revisions of one or more accessible personalities, wherein each personality is configured to convert incoming data from a particular language to a low-level data stream. Once registered, appropriate personality revisions are dynamically selected to convert the incoming data, while retaining all registered revisions of the one or more personalities for subsequent use.
According to one exemplary implementation of the present invention, a printer implementing the method introduced above will selectively invoke a personality revision based, at least in part, on the data type and/or date stamp of the registered personality. These and other aspects and advantages of the present invention will become clear to those skilled in the art based on the description to follow.